#include <iostream>
#include <gflags/gflags.h>
// #include <spdlog/spdlog.h>
// #include <spdlog/async_logger.h>
// #include <spdlog/sinks/basic_file_sink.h>
// // #include <spdlog/sinks/stdout_color_sinks-inl.h>
// #include <spdlog/sinks/stdout_color_sinks.h>
// #include <spdlog/async.h>
#include <string>
#include "../../common/log.hpp"
DEFINE_int32(thread_num, 1, "thread num");
 
void test_log()  {
    init_logger("basic_log.txt", spdlog::level::trace, true);
    LOG_TRACE("This is a trace log with value: {}", 42);
    LOG_DEBUG("This is a debug log with value: {}", "123");
}
int main(int argn, char* argv[]) {
    // gflags::ParseCommandLineFlags(&argn, &argv, true);
    // spdlog::init_thread_pool(1, FLAGS_thread_num); // queue size, number of threads
    // auto logger = spdlog::stdout_color_mt<spdlog::async_factory>("console"); 
    // // logger->flush_on(spdlog::level::debug);
    // // spdlog::flush_every(std::chrono::seconds(1));   
    // // logger->set_level(spdlog::level::critical);
    // // logger->flush_on(spdlog::level::debug);
    // // logger->set_pattern("[%H]");
    // logger->set_pattern("[%n][%Y-%m-%d %H:%M:%S.%e] [%l] [thread %t] %v");
    // logger->critical("{}", 1);
    // logger->error("{}", 1);
    // logger->info("{}", 1);
    // logger->debug("{}", 1);
    // logger->set_level(spdlog::level::critical);
    // logger->critical("{}", 1);
    // logger->error("{}", 1);
    // logger->info("{}", 1);
    // logger->debug("{}", 1);
    // logger->set_level(spdlog::level::trace);
    // logger->critical("{}", 1);
    // logger->error("{}", 1);
    // logger->info("{}", 1);
    // logger->debug("{}", 1);

    // std::cout << "yes" << std::endl;
    test_log();
    return 0;
} 